package leetcode.od;

import org.junit.Test;

import java.util.Scanner;

/**
 * @author pppppp
 * @date 2022/4/12 11:37
 * 描述
 * 开发一个坐标计算工具， A表示向左移动，D表示向右移动，W表示向上移动，S表示向下移动。从（0,0）点开始移动，
 * 从输入字符串里面读取一些坐标，并将最终输入结果输出到输出文件里面。
 * <p>
 * 输入：
 * 合法坐标为A(或者D或者W或者S) + 数字（两位以内）
 * 坐标之间以;分隔。
 * 非法坐标点需要进行丢弃。如AA10;  A1A;  $%$;  YAD; 等。
 * 下面是一个简单的例子 如：
 * A10;S20;W10;D30;X;A1A;B10A11;;A10;
 * 处理过程：
 * 起点（0,0）
 * +   A10   =  （-10,0）
 * +   S20   =  (-10,-20)
 * +   W10  =  (-10,-10)
 * +   D30  =  (20,-10)
 * +   x    =  无效
 * +   A1A   =  无效
 * +   B10A11   =  无效
 * +  一个空 不影响
 * +   A10  =  (10,-10)
 * 结果 （10， -10）
 * 示例1
 * 输入：
 * A10;S20;W10;D30;X;A1A;B10A11;;A10;
 * 复制
 * 输出：
 * 10,-10
 * 复制
 * 示例2
 * 输入：
 * ABC;AKL;DA1;
 * 复制
 * 输出：
 * 0,0
 */
public class HJ17_坐标移动 {
    @Test
    public void T_() {
        String[] s = {"A10;S20;W10;D30;X;A1A;B10A11;;A10;", "ABC;AKL;DA1;"};
        String[] ans = {"10,-10", "0,0"};
        for (int i = 0; i < s.length; i++) {
            System.out.println(solution(s[i]).equals(ans[i]));
        }
    }

    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNext()){
            String nexts = scanner.nextLine();
            String[] s = nexts.split(" ");
            Integer x = Integer.valueOf(s[0]);
            Integer y = Integer.valueOf(s[1]);
            if(x == 0 && y == 0){
                break;
            }
            System.out.println( x + y);
        }
    }
   /* public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        String next = scanner.next();
        System.out.println(solution(next));
    }*/
    static String solution(String s) {
        String[] split = s.split(";");
        int[] loc = new int[2];
        for (String s1 : split) {
            if (s1.matches("[AWSD](([1-9]\\d)|\\d)")) {
                char c = s1.charAt(0);
                Integer num = Integer.valueOf(s1.substring(1));
                switch (c) {
                    case 'A':
                        loc[0] -= num;
                        break;
                    case 'S':
                        loc[1] -= num;
                        break;
                    case 'W':
                        loc[1] += num;
                        break;
                    case 'D':
                        loc[0] += num;
                        break;
                }
            }
        }
        return loc[0] + "," + loc[1];
    }
}
